home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / site-packages / Numeric / UserArray.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2006-03-29  |  13KB  |  353 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. from Numeric import *
  5. import string
  6.  
  7. class UserArray:
  8.     
  9.     def __init__(self, data, typecode = None, copy = 1, savespace = 0):
  10.         self.array = array(data, typecode, copy, savespace)
  11.         self.shape = self.array.shape
  12.         self._typecode = self.array.typecode()
  13.         self.name = string.split(str(self.__class__))[0]
  14.  
  15.     
  16.     def __repr__(self):
  17.         if len(self.array.shape) > 0:
  18.             return self.__class__.__name__ + repr(self.array)[len('array'):]
  19.         else:
  20.             return self.__class__.__name__ + '(' + repr(self.array) + ')'
  21.  
  22.     
  23.     def __array__(self, t = None):
  24.         if t:
  25.             return asarray(self.array, t)
  26.         
  27.         return asarray(self.array)
  28.  
  29.     
  30.     def __float__(self):
  31.         return float(asarray(self.array))
  32.  
  33.     
  34.     def __len__(self):
  35.         return len(self.array)
  36.  
  37.     
  38.     def __getitem__(self, index):
  39.         return self._rc(self.array[index])
  40.  
  41.     
  42.     def __getslice__(self, i, j):
  43.         return self._rc(self.array[i:j])
  44.  
  45.     
  46.     def __setitem__(self, index, value):
  47.         self.array[index] = asarray(value, self._typecode)
  48.  
  49.     
  50.     def __setslice__(self, i, j, value):
  51.         self.array[i:j] = asarray(value, self._typecode)
  52.  
  53.     
  54.     def __del__(self):
  55.         for att in self.__dict__.keys():
  56.             delattr(self, att)
  57.         
  58.  
  59.     
  60.     def __abs__(self):
  61.         return self._rc(absolute(self.array))
  62.  
  63.     
  64.     def __neg__(self):
  65.         return self._rc(-(self.array))
  66.  
  67.     
  68.     def __add__(self, other):
  69.         return self._rc(self.array + asarray(other))
  70.  
  71.     __radd__ = __add__
  72.     
  73.     def __iadd__(self, other):
  74.         add(self.array, other, self.array)
  75.         return self
  76.  
  77.     
  78.     def __sub__(self, other):
  79.         return self._rc(self.array - asarray(other))
  80.  
  81.     
  82.     def __rsub__(self, other):
  83.         return self._rc(asarray(other) - self.array)
  84.  
  85.     
  86.     def __isub__(self, other):
  87.         subtract(self.array, other, self.array)
  88.         return self
  89.  
  90.     
  91.     def __mul__(self, other):
  92.         return self._rc(multiply(self.array, asarray(other)))
  93.  
  94.     __rmul__ = __mul__
  95.     
  96.     def __imul__(self, other):
  97.         multiply(self.array, other, self.array)
  98.         return self
  99.  
  100.     
  101.     def __div__(self, other):
  102.         return self._rc(divide(self.array, asarray(other)))
  103.  
  104.     
  105.     def __rdiv__(self, other):
  106.         return self._rc(divide(asarray(other), self.array))
  107.  
  108.     
  109.     def __idiv__(self, other):
  110.         divide(self.array, other, self.array)
  111.         return self
  112.  
  113.     
  114.     def __mod__(self, other):
  115.         return self._rc(remainder(self.array, other))
  116.  
  117.     
  118.     def __rmod__(self, other):
  119.         return self._rc(remainder(other, self.array))
  120.  
  121.     
  122.     def __imod__(self, other):
  123.         remainder(self.array, other, self.array)
  124.         return self
  125.  
  126.     
  127.     def __divmod__(self, other):
  128.         return (self._rc(divide(self.array, other)), self._rc(remainder(self.array, other)))
  129.  
  130.     
  131.     def __rdivmod__(self, other):
  132.         return (self._rc(divide(other, self.array)), self._rc(remainder(other, self.array)))
  133.  
  134.     
  135.     def __pow__(self, other):
  136.         return self._rc(power(self.array, asarray(other)))
  137.  
  138.     
  139.     def __rpow__(self, other):
  140.         return self._rc(power(asarray(other), self.array))
  141.  
  142.     
  143.     def __ipow__(self, other):
  144.         power(self.array, other, self.array)
  145.         return self
  146.  
  147.     
  148.     def __lshift__(self, other):
  149.         return self._rc(left_shift(self.array, other))
  150.  
  151.     
  152.     def __rshift__(self, other):
  153.         return self._rc(right_shift(self.array, other))
  154.  
  155.     
  156.     def __rlshift__(self, other):
  157.         return self._rc(left_shift(other, self.array))
  158.  
  159.     
  160.     def __rrshift__(self, other):
  161.         return self._rc(right_shift(other, self.array))
  162.  
  163.     
  164.     def __ilshift__(self, other):
  165.         left_shift(self.array, other, self.array)
  166.         return self
  167.  
  168.     
  169.     def __irshift__(self, other):
  170.         right_shift(self.array, other, self.array)
  171.         return self
  172.  
  173.     
  174.     def __and__(self, other):
  175.         return self._rc(bitwise_and(self.array, other))
  176.  
  177.     
  178.     def __rand__(self, other):
  179.         return self._rc(bitwise_and(other, self.array))
  180.  
  181.     
  182.     def __iand__(self, other):
  183.         bitwise_and(self.array, other, self.array)
  184.         return self
  185.  
  186.     
  187.     def __xor__(self, other):
  188.         return self._rc(bitwise_xor(self.array, other))
  189.  
  190.     
  191.     def __rxor__(self, other):
  192.         return self._rc(bitwise_xor(other, self.array))
  193.  
  194.     
  195.     def __ixor__(self, other):
  196.         bitwise_xor(self.array, other, self.array)
  197.         return self
  198.  
  199.     
  200.     def __or__(self, other):
  201.         return self._rc(bitwise_or(self.array, other))
  202.  
  203.     
  204.     def __ror__(self, other):
  205.         return self._rc(bitwise_or(other, self.array))
  206.  
  207.     
  208.     def __ior__(self, other):
  209.         bitwise_or(self.array, other, self.array)
  210.         return self
  211.  
  212.     
  213.     def __neg__(self):
  214.         return self._rc(-(self.array))
  215.  
  216.     
  217.     def __pos__(self):
  218.         return self._rc(self.array)
  219.  
  220.     
  221.     def __abs__(self):
  222.         return self._rc(abs(self.array))
  223.  
  224.     
  225.     def __invert__(self):
  226.         return self._rc(invert(self.array))
  227.  
  228.     
  229.     def _scalarfunc(a, func):
  230.         if len(a.shape) == 0:
  231.             return func(a[0])
  232.         else:
  233.             raise TypeError, 'only rank-0 arrays can be converted to Python scalars.'
  234.  
  235.     
  236.     def __complex__(self):
  237.         return self._scalarfunc(complex)
  238.  
  239.     
  240.     def __float__(self):
  241.         return self._scalarfunc(float)
  242.  
  243.     
  244.     def __int__(self):
  245.         return self._scalarfunc(int)
  246.  
  247.     
  248.     def __long__(self):
  249.         return self._scalarfunc(long)
  250.  
  251.     
  252.     def __hex__(self):
  253.         return self._scalarfunc(hex)
  254.  
  255.     
  256.     def __oct__(self):
  257.         return self._scalarfunc(oct)
  258.  
  259.     
  260.     def __lt__(self, other):
  261.         return self._rc(less(self.array, other))
  262.  
  263.     
  264.     def __le__(self, other):
  265.         return self._rc(less_equal(self.array, other))
  266.  
  267.     
  268.     def __eq__(self, other):
  269.         return self._rc(equal(self.array, other))
  270.  
  271.     
  272.     def __ne__(self, other):
  273.         return self._rc(not_equal(self.array, other))
  274.  
  275.     
  276.     def __gt__(self, other):
  277.         return self._rc(greater(self.array, other))
  278.  
  279.     
  280.     def __ge__(self, other):
  281.         return self._rc(greater_equal(self.array, other))
  282.  
  283.     
  284.     def copy(self):
  285.         return self._rc(self.array.copy())
  286.  
  287.     
  288.     def tostring(self):
  289.         return self.array.tostring()
  290.  
  291.     
  292.     def byteswapped(self):
  293.         return self._rc(self.array.byteswapped())
  294.  
  295.     
  296.     def astype(self, typecode):
  297.         return self._rc(self.array.astype(typecode))
  298.  
  299.     
  300.     def typecode(self):
  301.         return self._typecode
  302.  
  303.     
  304.     def itemsize(self):
  305.         return self.array.itemsize()
  306.  
  307.     
  308.     def iscontiguous(self):
  309.         return self.array.iscontiguous()
  310.  
  311.     
  312.     def _rc(self, a):
  313.         if len(shape(a)) == 0:
  314.             return a
  315.         else:
  316.             return self.__class__(a)
  317.  
  318.     
  319.     def __setattr__(self, attr, value):
  320.         if attr == 'shape':
  321.             self.array.shape = value
  322.         
  323.         self.__dict__[attr] = value
  324.  
  325.     
  326.     def __getattr__(self, attr):
  327.         if attr == 'real':
  328.             return self._rc(self.array.real)
  329.         elif attr == 'imag':
  330.             return self._rc(self.array.imag)
  331.         elif attr == 'flat':
  332.             return self._rc(self.array.flat)
  333.         
  334.         return getattr(self.array, attr)
  335.  
  336.  
  337. if __name__ == '__main__':
  338.     import Numeric
  339.     temp = reshape(arange(10000), (100, 100))
  340.     ua = UserArray(temp)
  341.     print dir(ua)
  342.     print shape(ua), ua.shape
  343.     ua_small = ua[(:3, :5)]
  344.     print ua_small
  345.     ua_small[(0, 0)] = 10
  346.     print ua_small[(0, 0)], ua[(0, 0)]
  347.     print (sin(ua_small) / 3.0) * 6.0 + sqrt(ua_small ** 2)
  348.     print less(ua_small, 103), type(less(ua_small, 103))
  349.     print type(ua_small * reshape(arange(15), shape(ua_small)))
  350.     print reshape(ua_small, (5, 3))
  351.     print transpose(ua_small)
  352.  
  353.